package org.springblade.modules.admin.dto.rescue;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.modules.admin.dto.RescueNoticeAiSessionContentDTO;
import org.springblade.modules.admin.entity.RescueNoticeAiSessionContent;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author: Sharry
 * @createTime: 2025-07-17 20:13
 * @version: Version-1.0
 */
@Data
public class GroupAINoticeCreateDTO {

	/**
	 * 微信群聊id，对应chat_group表的group_id字段，必填
	 */
	@ApiModelProperty(value = "微信群聊id，对应chat_group表的group_id字段", required = true)
	@NotBlank(message = "微信群聊id不能为空！")
	private String groupId;
	/**
	 * 微信群聊名称，对应chat_group表的`name`字段
	 */
	@ApiModelProperty(value = "微信群聊名称，对应chat_group表的`name`字段")
	private String groupName;

	/**
	 * 会话时长(秒数），字段预留了毫秒值的宽度
	 */
	@ApiModelProperty(value = "会话时长(秒数），字段预留了毫秒值的宽度")
	private Long chatTime;
	/**
	 * 会话参与人数
	 */
	@ApiModelProperty(value = "会话参与人数")
	private Integer memberCount;
	/**
	 * 会话参与人，顿号或其它分隔符隔开
	 */
	@ApiModelProperty(value = "会话参与人，顿号或其它分隔符隔开")
	private String member;
	/**
	 * 会话开始时间
	 */
	@ApiModelProperty(value = "会话开始时间")
	private LocalDateTime chatBeginTime;
	/**
	 * 会话结束时间
	 */
	@ApiModelProperty(value = "会话结束时间")
	private LocalDateTime chatEndTime;
	/**
	 * 是否转人工：0-否 1-是
	 */
	@ApiModelProperty(value = "是否转人工：0-否 1-是")
	private Integer isConvert;
	/**
	 * 人工触发方式：1-系统转人工 2-客户转人工
	 */
	@ApiModelProperty(value = "人工触发方式：1-系统转人工 2-客户转人工")
	private Integer convertType;
	/**
	 * 告警名称
	 */
	@ApiModelProperty(value = "告警名称")
	private String reportName;
	/**
	 * 告警来源（预留或固定值）
	 */
	@ApiModelProperty(value = "告警来源（预留或固定值）")
	private String reportSource;
	/**
	 * 被困人联系方式
	 */
	@ApiModelProperty(value = "被困人联系方式")
	private String contactPhone;

	/**
	 * 会话记录
	 */
	@ApiModelProperty(value = "会话记录")
	private List<AiSessionContentDTO> contentDTOS;

	/**
	 * 工单类型（2-维修工单，3-救援工单） 预留
	 */
	@ApiModelProperty(value = "工单类型（2-维修工单，3-救援工单）")
	private String ticketType;

	/**
	 * 电梯梯号 用于获取电梯信息
	 */
	@ApiModelProperty(value = "电梯梯号 用于获取电梯信息")
	private String elevatorAddress;
}
